package br.com.ava.core.entrada;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;

import br.com.ava.core.infra.persistencia.ObjetoPersistente;
import br.com.ava.core.produto.Produto;

@Entity
@Table(name = "item_entrada")
@IdClass(value = EntradaItemEntradaID.class)
@SuppressWarnings("serial")
public class ItemEntrada extends ObjetoPersistente {

	private int quantidade;
	private float valorcompra;
	private Produto produto;
	private EntradaProduto entradaProduto;

	public ItemEntrada(int quantidade, float valorcompra) {
		this();
		this.quantidade = quantidade;
		this.valorcompra = valorcompra;
	}

	public ItemEntrada() {
		super();
	}

	@NotNull
	@Column(name = "quantidade", nullable = false)
	public int getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}

	@NotNull
	@Column(name = "valor_compra", nullable = false)
	public float getValorcompra() {
		return valorcompra;
	}

	public void setValorcompra(float valorcompra) {
		this.valorcompra = valorcompra;
	}

	@Id
	@NotNull
	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	@Id
	@NotNull
	public EntradaProduto getEntradaProduto() {
		return entradaProduto;
	}

	public void setEntradaProduto(EntradaProduto entradaProduto) {
		this.entradaProduto = entradaProduto;
	}

	@Override
	@Transient
	public Integer getId() {
		return null;
	}

}
